﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSE.Framework.UI.Settings
{
    public interface IConfigurationSettingsHandler<TConfigurationObjectType>
        where TConfigurationObjectType : struct
    {
        bool ChangePropertyValue<T>(IConfigurationObject<TConfigurationObjectType> configuration, string propertyName, object value) 
            where T : IConfigurationObject<TConfigurationObjectType>;

        void ChangeAllPropertiesValue<T>(TConfigurationObjectType configurationType, string propertyName, object value) 
            where T : IConfigurationObject<TConfigurationObjectType>, new();

        List<IConfigurationObject<TConfigurationObjectType>> GetConfigurationObjects<T>(TConfigurationObjectType configurationType) 
            where T : IConfigurationObject<TConfigurationObjectType>, new();
    }
}
